package doublepointer;

/**
 * 思路：使用双指针左右向中间移动，移动的规则是：如果左边的值小于右边的值，则左边向右移动，否则右边向左移动
 * 移动的过程中，计算出当前能得到的最大面积，如果最大面积大于当前面积，则更新最大面积
 */
public class MaxArea {
    public int maxArea(int[] height) {
        int begin = 0,end = height.length-1;
        int max = 0;
        while (begin < end){
            int area = Math.min(height[begin],height[end])*(end-begin);
            max = Math.max(max,area);
            if(height[begin] < height[end]){
                begin++;
            }else {
                end--;
            }
        }
        return max;
    }
    public static void main(String[] args) {
        int[] height = {1,8,6,2,5,4,8,3,7};
        MaxArea maxArea = new MaxArea();
        int i = maxArea.maxArea(height);
        System.out.println(i);
    }
}
